async function async1() {
    console.log('async1 start');
    await new Promise(resolve => {
        console.log('promise1');
        resolve('promise resolve');
    });
    console.log('async1 success');    // 微1
    return 'async1 end';
};

console.log('script start'); 

async1().then(res => {    // 微2
    console.log(res);
});

new Promise(resolve => {
    console.log('promise2');
    setTimeout(() => {    
        console.log('timer');   // 宏1
    }); 
});

// script start -> promise1 -> promise2 -> async1 success
// -> async1 end -> timer